import Vue from 'vue'
import App from './App.vue'

// 三级联动组件---全局组件
import TypeNav from '@/components/TypeNav'
// 轮播图组件---全局组件
import Carousel from '@/components/Carousel'
// 分页器组件---全局组件
import Pagination from '@/components/Pagination'

// 定义全局组件
import { MessageBox } from 'element-ui'

// 第一个参数：全局组件的名字，第二个参数：哪一个组件
Vue.component(TypeNav.name, TypeNav)
Vue.component(Carousel.name, Carousel)
Vue.component(Pagination.name, Pagination)

// 注册全局组件
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;

// 引入mock数据
import '@/mock/mockServe.js'

// 引入swiper样式
import "swiper/css/swiper.css"

// 引入路由
import router from '@/router'

// 引入仓库
import store from './store'

// 引入路由懒加载插件
import VueLazyload from 'vue-lazyload'

// 统一接口api文件夹里面全部请求函数
// 统一引入
import * as API from '@/api'
import h from '@/assets/logo.png'

import { reqGetSearchInfo } from '@/api'
console.log(reqGetSearchInfo({}));

// 注册路由懒加载插件
Vue.use(VueLazyload, {
    // 懒加载默认的图片
    loading: h
})

// 引入校验插件
import "@/utils/validate.js"

new Vue({
    render: (h) => h(App),
    // 全局事件总线$bus配置
    beforeCreate() {
        Vue.prototype.$bus = this
        Vue.prototype.$API = API
    },
    // 注册路由
    router,
    // 注册仓库
    store
}).$mount('#app')